#include<stdio.h>
#include<stdlib.h>
// 链表的入口是指针

typedef struct ListNode
{
    int val;
    struct ListNode *next;
} ListNode;

ListNode *newNode(int val);

int main()
{
    // 初始化链表 1 -> 3 -> 2 -> 5 -> 4 
    int size, val;
    printf("请输入链表的长度:");
    scanf("%d", &size);

    // 创建第一个节点
    printf("请输入第1个值:");
    scanf("%d", &val);
    ListNode *head = newNode(val);
    ListNode *tail = head;
    for (int i = 1; i < size; i++)
    {
        printf("请输入第%d个值:", i+1);
        scanf("%d", &val);
        ListNode *n = newNode(val);
        tail->next = n;
        tail = tail->next;
    }
    
    ListNode *p = head;
    // 输出链表
    while (p != NULL)
    {
        printf("%d->", p->val);
        p = p->next;
    }
}

ListNode *newNode(int val)
{
    ListNode *node = (ListNode *)malloc(sizeof(ListNode));
    node->val = val;
    node->next = NULL;
    return node;
}